import re


def standardize_text(text):
    # 将内容标准化：去除多余的空格，统一分隔符
    text = re.sub(r'\s+', ' ', text)  # 合并多个空格为一个
    text = re.sub(r'[:,，]', ':', text)  # 统一分隔符为冒号
    text = re.sub(r'尿常规:尿常规其他:', '尿常规:', text)  # 统一"尿常规其他"的表达方式
    return text


def compare_texts(text1, text2):
    # 标准化处理后的文本
    text1 = standardize_text(text1)
    text2 = standardize_text(text2)

    # 将文本按逗号分割为列表，并去除两边的空格
    list1 = [item.strip() for item in text1.split(',')]
    list2 = [item.strip() for item in text2.split(',')]

    # 找出text1中有而text2中没有的项
    missing_in_text2 = [item for item in list1 if item not in list2]

    # 找出text2中有而text1中没有的项
    missing_in_text1 = [item for item in list2 if item not in list1]

    return missing_in_text2, missing_in_text1


# 输入的两段文本
text1 = "高血压血压控制不满意, 超重, 腹型肥胖, 腹部B超:肝囊肿, 心电图:心房纤颤 心室率69次/分 心房率45次/分 不完右, 尿常规:尿常规其他:尿白细胞2+, 生化十项:高脂血症-总胆固醇升高, 血清低密度脂蛋白胆固醇升高"
text2 = "超重, 腹型肥胖, 心电图：房颤 不完右 心律不齐, 生化：总胆固醇升高 低密度脂蛋白升高, 尿常规：尿白细胞2+, B超：肝囊肿"

# 调用函数进行比较
missing_in_text2, missing_in_text1 = compare_texts(text1, text2)

# 打印结果
print("Text1中有但Text2中没有的部分:", missing_in_text2)
print("Text2中有但Text1中没有的部分:", missing_in_text1)
